g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
↳ QTRS
↳ DependencyPairsProof
g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
FOLDF2(x, cons2(y, z)) -> FOLDF2(x, z)
FOLDF2(x, cons2(y, z)) -> F2(foldf2(x, z), y)
F'2(triple3(a, b, c), A) -> F''1(foldf2(triple3(cons2(A, a), nil, c), b))
F2(t, x) -> F'2(t, g1(x))
F2(t, x) -> G1(x)
F'2(triple3(a, b, c), A) -> FOLDF2(triple3(cons2(A, a), nil, c), b)
F''1(triple3(a, b, c)) -> FOLDF2(triple3(a, b, nil), c)
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
FOLDF2(x, cons2(y, z)) -> FOLDF2(x, z)
FOLDF2(x, cons2(y, z)) -> F2(foldf2(x, z), y)
F'2(triple3(a, b, c), A) -> F''1(foldf2(triple3(cons2(A, a), nil, c), b))
F2(t, x) -> F'2(t, g1(x))
F2(t, x) -> G1(x)
F'2(triple3(a, b, c), A) -> FOLDF2(triple3(cons2(A, a), nil, c), b)
F''1(triple3(a, b, c)) -> FOLDF2(triple3(a, b, nil), c)
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
FOLDF2(x, cons2(y, z)) -> FOLDF2(x, z)
FOLDF2(x, cons2(y, z)) -> F2(foldf2(x, z), y)
F'2(triple3(a, b, c), A) -> F''1(foldf2(triple3(cons2(A, a), nil, c), b))
F2(t, x) -> F'2(t, g1(x))
F'2(triple3(a, b, c), A) -> FOLDF2(triple3(cons2(A, a), nil, c), b)
F''1(triple3(a, b, c)) -> FOLDF2(triple3(a, b, nil), c)
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FOLDF2(x, cons2(y, z)) -> FOLDF2(x, z)
FOLDF2(x, cons2(y, z)) -> F2(foldf2(x, z), y)
Used ordering: Polynomial Order [17,21] with Interpretation:
F'2(triple3(a, b, c), A) -> F''1(foldf2(triple3(cons2(A, a), nil, c), b))
F2(t, x) -> F'2(t, g1(x))
F'2(triple3(a, b, c), A) -> FOLDF2(triple3(cons2(A, a), nil, c), b)
F''1(triple3(a, b, c)) -> FOLDF2(triple3(a, b, nil), c)
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
POL( triple3(x1, ..., x3) ) = x2 + x3
POL( F''1(x1) ) = 3x1
POL( F2(x1, x2) ) = 3x1
POL( f''1(x1) ) = x1
POL( F'2(x1, x2) ) = 3x1
POL( nil ) = 0
POL( g1(x1) ) = max{0, -3}
POL( cons2(x1, x2) ) = x2 + 1
POL( C ) = max{0, -3}
POL( f'2(x1, x2) ) = x1 + 1
POL( A ) = 0
POL( f2(x1, x2) ) = x1 + 1
POL( FOLDF2(x1, x2) ) = 3x1 + 3x2
POL( foldf2(x1, x2) ) = x1 + x2
POL( B ) = 1
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
foldf2(x, nil) -> x
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f2(t, x) -> f'2(t, g1(x))
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
F2(t, x) -> F'2(t, g1(x))
F'2(triple3(a, b, c), A) -> F''1(foldf2(triple3(cons2(A, a), nil, c), b))
F'2(triple3(a, b, c), A) -> FOLDF2(triple3(cons2(A, a), nil, c), b)
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
F''1(triple3(a, b, c)) -> FOLDF2(triple3(a, b, nil), c)
g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
F2(t, x) -> F'2(t, g1(x))
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
F2(t, x) -> F'2(t, g1(x))
Used ordering: Polynomial Order [17,21] with Interpretation:
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
POL( triple3(x1, ..., x3) ) = 3x1 + 3x2 + 2x3
POL( A ) = max{0, -1}
POL( F2(x1, x2) ) = 2x2 + 1
POL( F'2(x1, x2) ) = x2
POL( g1(x1) ) = max{0, 2x1 - 1}
POL( C ) = 3
POL( B ) = 1
g1(B) -> B
g1(C) -> C
g1(C) -> B
g1(A) -> A
g1(B) -> A
g1(C) -> A
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
F'2(triple3(a, b, c), B) -> F2(triple3(a, b, c), A)
g1(A) -> A
g1(B) -> A
g1(B) -> B
g1(C) -> A
g1(C) -> B
g1(C) -> C
foldf2(x, nil) -> x
foldf2(x, cons2(y, z)) -> f2(foldf2(x, z), y)
f2(t, x) -> f'2(t, g1(x))
f'2(triple3(a, b, c), C) -> triple3(a, b, cons2(C, c))
f'2(triple3(a, b, c), B) -> f2(triple3(a, b, c), A)
f'2(triple3(a, b, c), A) -> f''1(foldf2(triple3(cons2(A, a), nil, c), b))
f''1(triple3(a, b, c)) -> foldf2(triple3(a, b, nil), c)